package copy;

import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

/**
 * 利用FileReader和FileWriter来拷贝纯文本文件
 *    字节流:字节流可以操作任意文件(所有文件在计算机上都是以字节形式存储的),我们一般用字节流操作不需要编码的文件(图片,视频,音频...)
 *    字符流:只用来操作字符类文件(文本型文件,因为文本型文件涉及到码表)
 */
public class CopyDemo01 {
    public static void main(String[] args)throws Exception {
        //method01();
        //1.利用FileReader关联源文件
        FileReader fr = new FileReader("day23-IO-02/src/reader/FileReaderDemo01.java");

        //2.利用FileWriter关联目的文件
        FileWriter fw = new FileWriter("day23-IO-02/copy02.txt");

        //3.先将数据批量读取到字符数组中,然后再将字符数组中的内容写入目的文件中
        char[] chars = new char[1024];//一般声明1024整数倍
        int length;

        while ((length = fr.read(chars)) != -1) {
            fw.write(chars, 0, length);
        }

        //4.关流释放资源
        fr.close();
        fw.close();

    }

    private static void method01() throws IOException {
        //源文件========>目的文件
        //1.利用FileReader关联源文件
        FileReader fr = new FileReader("day23-IO-02/src/reader/FileReaderDemo01.java");

        //2.利用FileWriter关联目的文件
        FileWriter fw = new FileWriter("day23-IO-02/copy01.txt");

        //3.循环开始读写操作
        int ch;
        while ((ch = fr.read()) != -1) {
            fw.write(ch);
        }

        //4.关流释放资源
        fr.close();
        fw.close();
    }
}
